﻿namespace Algo.CodeContracts
{
    using System;
    using System.Collections.Generic;
    using System.Diagnostics.Contracts;

    [ContractClassFor(typeof(IDichotomySearchStrategy))]
    internal abstract class DichotomySearchStrategyCodeContracts : IDichotomySearchStrategy
    {
        public bool Find<T>(IList<T> list, T item, IComparer<T> comparer, IAlgoExtensions extensions, out int? prev, out int? next)
        {
            Contract.Requires<ArgumentNullException>(list != null);
            Contract.Requires<ArgumentNullException>(comparer != null);
            Contract.Requires<ArgumentNullException>(extensions != null);

            prev = default(int?);
            next = default(int?);
            return default(bool);
        }
    }
}
